home *** CD-ROM | disk | FTP | other *** search
/ Aminet 28 / Aminet 28 (1998)(GTI - Schatztruhe)[!][Dec 1998].iso / Aminet / dev / c / AMesaRTL.lha / Mesa-2.6 / amiga / src / api2.c < prev    next >
C/C++ Source or Header  |  1998-09-19  |  49KB  |  1,763 lines

  1. /* $Id: api2.c,v 1.9 1998/02/05 00:17:23 brianp Exp $ */
  2.  
  3. /*
  4.  * Mesa 3-D graphics library
  5.  * Version:  2.6
  6.  * Copyright (C) 1995-1997  Brian Paul
  7.  *
  8.  * This library is free software; you can redistribute it and/or
  9.  * modify it under the terms of the GNU Library General Public
  10.  * License as published by the Free Software Foundation; either
  11.  * version 2 of the License, or (at your option) any later version.
  12.  *
  13.  * This library is distributed in the hope that it will be useful,
  14.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  16.  * Library General Public License for more details.
  17.  *
  18.  * You should have received a copy of the GNU Library General Public
  19.  * License along with this library; if not, write to the Free
  20.  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  21.  */
  22.  
  23.  
  24. /*
  25.  * api1.c
  26.  *
  27.  * Version 1.0  27 Jun 1998
  28.  * by Jarno van der Linden
  29.  * jarno@kcbbs.gen.nz
  30.  *
  31.  * File created from api2.c ver 1.9 and gl.h ver 1.26 using GenProtos
  32.  *
  33.  */
  34.  
  35.  
  36. #ifdef PC_HEADER
  37. #include "all.h"
  38. #else
  39. #include <stdio.h>
  40. #include <stdlib.h>
  41. #include "api.h"
  42. #include "bitmap.h"
  43. #include "context.h"
  44. #include "eval.h"
  45. #include "image.h"
  46. #include "macros.h"
  47. #include "matrix.h"
  48. #include "teximage.h"
  49. #include "types.h"
  50. #include "vb.h"
  51. #endif
  52.  
  53.  
  54.  
  55. __asm __saveds void APIENTRY glOrthoA(register __a0 void *vargs)
  56. {
  57.     struct glOrthoArgs {
  58.         GLdouble left;
  59.         GLdouble right;
  60.         GLdouble bottom;
  61.         GLdouble top;
  62.         GLdouble nearval;
  63.         GLdouble farval;
  64.     } *args;
  65.  
  66.     args = (struct glOrthoArgs *)vargs;
  67.  
  68.     glOrtho(args->left, args->right, args->bottom, args->top, args->nearval, args->farval);
  69. }
  70.  
  71.  
  72. __asm __saveds void APIENTRY glOrtho( register __fp0 GLdouble left, register __fp1 GLdouble right,
  73.                                       register __fp2 GLdouble bottom, register __fp3 GLdouble top,
  74.                                       register __fp4 GLdouble nearval, register __fp5 GLdouble farval )
  75. {
  76.    GET_CONTEXT;
  77.    CHECK_CONTEXT;
  78.    (*CC->API.Ortho)(CC, left, right, bottom, top, nearval, farval);
  79. }
  80.  
  81.  
  82. __asm __saveds void APIENTRY glPassThrough( register __fp0 GLfloat token )
  83. {
  84.    GET_CONTEXT;
  85.    CHECK_CONTEXT;
  86.    (*CC->API.PassThrough)(CC, token);
  87. }
  88.  
  89.  
  90. __asm __saveds void APIENTRY glPixelMapfv( register __d0 GLenum map, register __d1 GLint mapsize, register __a0 const GLfloat *values )
  91. {
  92.    GET_CONTEXT;
  93.    CHECK_CONTEXT;
  94.    (*CC->API.PixelMapfv)( CC, map, mapsize, values );
  95. }
  96.  
  97.  
  98. __asm __saveds void APIENTRY glPixelMapuiv( register __d0 GLenum map, register __d1 GLint mapsize, register __a0 const GLuint *values )
  99. {
  100.    GLfloat fvalues[MAX_PIXEL_MAP_TABLE];
  101.    GLuint i;
  102.    GET_CONTEXT;
  103.    CHECK_CONTEXT;
  104.  
  105.    if (map==GL_PIXEL_MAP_I_TO_I || map==GL_PIXEL_MAP_S_TO_S) {
  106.       for (i=0;i<mapsize;i++) {
  107.          fvalues[i] = (GLfloat) values[i];
  108.       }
  109.    }
  110.    else {
  111.       for (i=0;i<mapsize;i++) {
  112.          fvalues[i] = UINT_TO_FLOAT( values[i] );
  113.       }
  114.    }
  115.    (*CC->API.PixelMapfv)( CC, map, mapsize, fvalues );
  116. }
  117.  
  118.  
  119.  
  120. __asm __saveds void APIENTRY glPixelMapusv( register __d0 GLenum map, register __d1 GLint mapsize, register __a0 const GLushort *values )
  121. {
  122.    GLfloat fvalues[MAX_PIXEL_MAP_TABLE];
  123.    GLuint i;
  124.    GET_CONTEXT;
  125.    CHECK_CONTEXT;
  126.  
  127.    if (map==GL_PIXEL_MAP_I_TO_I || map==GL_PIXEL_MAP_S_TO_S) {
  128.       for (i=0;i<mapsize;i++) {
  129.          fvalues[i] = (GLfloat) values[i];
  130.       }
  131.    }
  132.    else {
  133.       for (i=0;i<mapsize;i++) {
  134.          fvalues[i] = USHORT_TO_FLOAT( values[i] );
  135.       }
  136.    }
  137.    (*CC->API.PixelMapfv)( CC, map, mapsize, fvalues );
  138. }
  139.  
  140.  
  141. __asm __saveds void APIENTRY glPixelStoref( register __d0 GLenum pname, register __fp0 GLfloat param )
  142. {
  143.    GET_CONTEXT;
  144.    CHECK_CONTEXT;
  145.    (*CC->API.PixelStorei)( CC, pname, (GLint) param );
  146. }
  147.  
  148.  
  149. __asm __saveds void APIENTRY glPixelStorei( register __d0 GLenum pname, register __d1 GLint param )
  150. {
  151.    GET_CONTEXT;
  152.    CHECK_CONTEXT;
  153.    (*CC->API.PixelStorei)( CC, pname, param );
  154. }
  155.  
  156.  
  157. __asm __saveds void APIENTRY glPixelTransferf( register __d0 GLenum pname, register __fp0 GLfloat param )
  158. {
  159.    GET_CONTEXT;
  160.    CHECK_CONTEXT;
  161.    (*CC->API.PixelTransferf)(CC, pname, param);
  162. }
  163.  
  164.  
  165. __asm __saveds void APIENTRY glPixelTransferi( register __d0 GLenum pname, register __d1 GLint param )
  166. {
  167.    GET_CONTEXT;
  168.    CHECK_CONTEXT;
  169.    (*CC->API.PixelTransferf)(CC, pname, (GLfloat) param);
  170. }
  171.  
  172.  
  173. __asm __saveds void APIENTRY glPixelZoom( register __fp0 GLfloat xfactor, register __fp1 GLfloat yfactor )
  174. {
  175.    GET_CONTEXT;
  176.    CHECK_CONTEXT;
  177.    (*CC->API.PixelZoom)(CC, xfactor, yfactor);
  178. }
  179.  
  180.  
  181. __asm __saveds void APIENTRY glPointSize( register __fp0 GLfloat size )
  182. {
  183.    GET_CONTEXT;
  184.    CHECK_CONTEXT;
  185.    (*CC->API.PointSize)(CC, size);
  186. }
  187.  
  188.  
  189. __asm __saveds void APIENTRY glPolygonMode( register __d0 GLenum face, register __d1 GLenum mode )
  190. {
  191.    GET_CONTEXT;
  192.    CHECK_CONTEXT;
  193.    (*CC->API.PolygonMode)(CC, face, mode);
  194. }
  195.  
  196.  
  197. __asm __saveds void APIENTRY glPolygonOffset( register __fp0 GLfloat factor, register __fp1 GLfloat units )
  198. {
  199.    GET_CONTEXT;
  200.    CHECK_CONTEXT;
  201.    (*CC->API.PolygonOffset)( CC, factor, units );
  202. }
  203.  
  204.  
  205. /* GL_EXT_polygon_offset */
  206. __asm __saveds void APIENTRY glPolygonOffsetEXT( register __fp0 GLfloat factor, register __fp1 GLfloat bias )
  207. {
  208.    glPolygonOffset( factor, bias * DEPTH_SCALE );
  209. }
  210.  
  211.  
  212. __asm __saveds void APIENTRY glPolygonStipple( register __a0 const GLubyte *mask )
  213. {
  214.    GET_CONTEXT;
  215.    CHECK_CONTEXT;
  216.    (*CC->API.PolygonStipple)(CC, mask);
  217. }
  218.  
  219.  
  220. __asm __saveds void APIENTRY glPopAttrib( void )
  221. {
  222.    GET_CONTEXT;
  223.    CHECK_CONTEXT;
  224.    (*CC->API.PopAttrib)(CC);
  225. }
  226.  
  227.  
  228. __asm __saveds void APIENTRY glPopClientAttrib( void )
  229. {
  230.    GET_CONTEXT;
  231.    CHECK_CONTEXT;
  232.    (*CC->API.PopClientAttrib)(CC);
  233. }
  234.  
  235.  
  236. __asm __saveds void APIENTRY glPopMatrix( void )
  237. {
  238.    GET_CONTEXT;
  239.    CHECK_CONTEXT;
  240.    (*CC->API.PopMatrix)( CC );
  241. }
  242.  
  243.  
  244. __asm __saveds void APIENTRY glPopName( void )
  245. {
  246.    GET_CONTEXT;
  247.    CHECK_CONTEXT;
  248.    (*CC->API.PopName)(CC);
  249. }
  250.  
  251.  
  252. __asm __saveds void APIENTRY glPrioritizeTextures( register __d0 GLsizei n, register __a0 const GLuint *textures,
  253.                                                    register __a1 const GLclampf *priorities )
  254. {
  255.    GET_CONTEXT;
  256.    CHECK_CONTEXT;
  257.    (*CC->API.PrioritizeTextures)(CC, n, textures, priorities);
  258. }
  259.  
  260.  
  261. __asm __saveds void APIENTRY glPushMatrix( void )
  262. {
  263.    GET_CONTEXT;
  264.    CHECK_CONTEXT;
  265.    (*CC->API.PushMatrix)( CC );
  266. }
  267.  
  268.  
  269. __asm __saveds void APIENTRY glRasterPos2d( register __fp0 GLdouble x, register __fp1 GLdouble y )
  270. {
  271.    GET_CONTEXT;
  272.    CHECK_CONTEXT;
  273.    (*CC->API.RasterPos4f)( CC, (GLfloat) x, (GLfloat) y, 0.0F, 1.0F );
  274. }
  275.  
  276.  
  277. __asm __saveds void APIENTRY glRasterPos2f( register __fp0 GLfloat x, register __fp1 GLfloat y )
  278. {
  279.    GET_CONTEXT;
  280.    CHECK_CONTEXT;
  281.    (*CC->API.RasterPos4f)( CC, (GLfloat) x, (GLfloat) y, 0.0F, 1.0F );
  282. }
  283.  
  284.  
  285. __asm __saveds void APIENTRY glRasterPos2i( register __d0 GLint x, register __d1 GLint y )
  286. {
  287.    GET_CONTEXT;
  288.    CHECK_CONTEXT;
  289.    (*CC->API.RasterPos4f)( CC, (GLfloat) x, (GLfloat) y, 0.0F, 1.0F );
  290. }
  291.  
  292.  
  293. __asm __saveds void APIENTRY glRasterPos2s( register __d0 GLshort x, register __d1 GLshort y )
  294. {
  295.    GET_CONTEXT;
  296.    CHECK_CONTEXT;
  297.    (*CC->API.RasterPos4f)( CC, (GLfloat) x, (GLfloat) y, 0.0F, 1.0F );
  298. }
  299.  
  300.  
  301. __asm __saveds void APIENTRY glRasterPos3d( register __fp0 GLdouble x, register __fp1 GLdouble y, register __fp2 GLdouble z )
  302. {
  303.    GET_CONTEXT;
  304.    CHECK_CONTEXT;
  305.    (*CC->API.RasterPos4f)( CC, (GLfloat) x, (GLfloat) y, (GLfloat) z, 1.0F );
  306. }
  307.  
  308.  
  309. __asm __saveds void APIENTRY glRasterPos3f( register __fp0 GLfloat x, register __fp1 GLfloat y, register __fp2 GLfloat z )
  310. {
  311.    GET_CONTEXT;
  312.    CHECK_CONTEXT;
  313.    (*CC->API.RasterPos4f)( CC, (GLfloat) x, (GLfloat) y, (GLfloat) z, 1.0F );
  314. }
  315.  
  316.  
  317. __asm __saveds void APIENTRY glRasterPos3i( register __d0 GLint x, register __d1 GLint y, register __d2 GLint z )
  318. {
  319.    GET_CONTEXT;
  320.    CHECK_CONTEXT;
  321.    (*CC->API.RasterPos4f)( CC, (GLfloat) x, (GLfloat) y, (GLfloat) z, 1.0F );
  322. }
  323.  
  324.  
  325. __asm __saveds void APIENTRY glRasterPos3s( register __d0 GLshort x, register __d1 GLshort y, register __d2 GLshort z )
  326. {
  327.    GET_CONTEXT;
  328.    CHECK_CONTEXT;
  329.    (*CC->API.RasterPos4f)( CC, (GLfloat) x, (GLfloat) y, (GLfloat) z, 1.0F );
  330. }
  331.  
  332.  
  333. __asm __saveds void APIENTRY glRasterPos4d( register __fp0 GLdouble x, register __fp